package com.ia.aistream.manager.common;

import com.ia.aistream.model.common.entity.CommonFile;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 系统文件路径Service接口
 * 
 * @author aistream
 * @date 2020-12-07
 */
public interface ICommonFileManager
{
    /**
     * 查询系统文件路径
     * 
     * @param id 系统文件路径ID
     * @return 系统文件路径
     */
    public CommonFile selectCommonFileById(Long id);

    /**
     * 查询系统文件路径列表
     * 
     * @param commonFile 系统文件路径
     * @return 系统文件路径集合
     */
    public List<CommonFile> selectCommonFileList(CommonFile commonFile);

    /**
     * 新增系统文件路径
     * 
     * @param commonFile 系统文件路径
     * @return 结果
     */
    public int insertCommonFile(CommonFile commonFile);

    /**
     * 修改系统文件路径
     * 
     * @param commonFile 系统文件路径
     * @return 结果
     */
    public int updateCommonFile(CommonFile commonFile);

    /**
     * 批量删除系统文件路径
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteCommonFileByIds(String ids);

    /**
     * 删除系统文件路径信息
     * 
     * @param id 系统文件路径ID
     * @return 结果
     */
    public int deleteCommonFileById(Long id);

    /***
     * 单个文件上传
     * @param file
     * @return
     * @throws Exception
     */
    CommonFile upload(MultipartFile file)  throws Exception;

    /***
     * 单个文件上传，添加允许上传类型
     * @param file
     * @param allowedExtension
     * @return
     * @throws Exception
     */
    CommonFile upload(MultipartFile file, String[] allowedExtension)  throws Exception;
    /***
     * 文件批量上传
     * @param files
     * @return 返回文件对象的列表
     * @throws Exception
     */
    CommonFile batchUpload(MultipartFile files)  throws Exception;

    /***
     * 实现Word文件上传
     * @param file
     * @return
     * @throws Exception
     */
    CommonFile wordUpload(MultipartFile file) throws Exception;

}
